週末補前面幾篇
沒意外的話這篇會把API系列結束
不過大家先載個測試用好朋友
Postman
它本來只是個Google Chrome的擴充 不過最近幾個月它獨立出來了
應該是為了不想被限制住一些功能吧 還有我之前稍微研究過 Google Chrome擴充好像還需要上架費 一次性5鎂吧 之後就可以丟好多個擴充了 不過也算是佛心來的 一堆人都會放免費的擴充 雖然5鎂不貴啦
接下來我們就來寫Controller的部分 我決定一次寫完一次全貼了 大家的水準都不知道是我的幾倍厲害
反正 就只是回傳成json 因為json算是用得比較廣泛的吧
url api/crud 就是index
長得像這樣 然後其他部分都差不多了
code在這裡
<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\CRUDRepository;
class CRUDController extends Controller
{
    protected $CRUDRepo;
    public function __construct(CRUDRepository $CRUDRepo)
    {
        $this->CRUDRepo = $CRUDRepo;
    }
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $posts = $this->CRUDRepo->index();
        return response()->json(['status' => 'success', 'posts' => $posts]);
    }
    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $data = $request->only('title', 'content');
        $post = $this->CRUDRepo->create($data);
        return response()->json(['status' => 'success']);
    }
    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $post = $this->CRUDRepo->find($id);
        return response()->json(['status' => 'success', 'post' => $post]);
    }
    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $data = $request->only('title', 'content');
        $post = $this->CRUDRepo->update($id, $data);
        if ($post) {
            return response()->json(['status' => 'success']);
        }
        return response()->json(['status' => 'error', 'message' => 'Post Not Found'], 404);
    }
    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $result = $this->CRUDRepo->delete($id);
        if ($result) {
            return response()->json(['status' => 'success']);
        }
        return response()->json(['status' => 'error', 'message' => 'Post Not Found'], 404);
    }
}
在update跟destroy的部分我有稍微動了些手腳
讓它回傳404的錯誤 status code就是這樣帶的
不過非GET與POST都要這樣子帶 是一個比較麻煩的地方就是了
Postman的部分我已經沒有什麼力氣講了...
https://ithelp.ithome.com.tw/articles/10195738
所以我就貼個別人的文吧...